1. Field of the Invention
The present invention relates to optical media recording devices such as CD-R, CD-RW, DVD-RAM, DVD−RW, and DVD+RW drives typically used with personal computers. More specifically, the invention relates to a system and method for automatically changing a writing speed of an optical medium in accordance with an interface data transfer speed.
2. Description of the Related Technology
A CD-RW (Compact Disc ReWriteable) drive is a typical peripheral storage device that is capable of recording and reading data to/from optical discs in a CD-R format and a CD-RW format. A CD-RW drive typically communicates with a host electronic device, for example a personal computer (PC), over a communication link, such as a specific type of peripheral device bus. Several common peripheral device buses are, for example, USB (Universal Serial Bus) and ATAPI (AT Attachment Packet Interface). A CD-RW drive is typically capable of recording and reading at standard constant linear velocity (CLV) rotational speeds, for example 1×, 2×, 4×, 8×, 12×, 16×, 20×, and 24× (and also referred to as single speed, double speed, quad speed, etc.). The linear velocity of the optical storage medium varies with its rotational velocity and the radius from the center of the storage medium at which an optical pick-up is accessing the medium.
During the recording process, the host device sends a stream of data across the communication link to the CD-RW drive. The CD-RW drive temporarily stores the data in a first-in-first-out (FIFO) buffer, and then writes the data to a continuous spiral track of the disc. The rate at which the data is read from the buffer and written to the optical disc is proportional to the linear velocity of the disc. Thus, higher linear velocities are preferred because the time it takes for a CD-RW drive to write to an optical disc is inversely proportional to the linear velocity of the optical disc.
In current implementations, a CD writing application on the PC requests the CD-RW maximum speed information so as to avoid a FIFO buffer under-run condition. The CD-RW drive returns the fixed information of the maximum speed it supports in writing to the storage medium, regardless of the data transfer speed of the communication link with the host device. This maximum speed information is typically stored in non-volatile memory (NVRAM) within the CD-RW drive, which is generally not modifiable by the host device. In other words, current implementations do not take into account the speed of the communication link when returning the maximum speed information, and thus require the PC user to manually modify the maximum speed via a user interface of the CD writing application.
Additionally, if the user incorrectly modifies the maximum speed, the rate at which data is transferred from the host to the CD-RW drive over the communication link may be of an insufficient speed to provide data at the rate required by the CD-RW drive based on the drive's fixed writing speed. As a result, it is possible for the drive's buffer to become empty, commonly referred to as a buffer under-run condition, resulting in an interruption to the data stream provided to the optical storage medium for writing.
The result of an interruption in the data stream being sent to the optical storage medium is an unrecoverable error. Where the optical storage medium is a CD-R disc, the disc becomes permanently unusable, wasting both time and the disc. Where the optical storage medium is a CD-RW disc, the disc can be re-written from scratch, but at the cost of frustration and additional time. Re-writing a CD-RW disc is particularly inconvenient when the CD-RW contained data from prior writes as the entire disc will have to be rewritten.
Table 1, below, provides a summary of selected speeds of an optical drive writing to a CD-R or CD-RW.
TABLE SpeedData Transfer RateTime to Write 650 MB1X (single speed)150 KB/sec72 minutes 2X300 KB/sec36 minutes 4X600 KB/sec18 minutes 8X1.2 MB/sec 9 minutes12X1.8 MB/sec 6 minutes16X2.4 MB/sec4.5 minutes 20X3.0 MB/sec3.6 minutes 24X3.6 MB/sec 3 minutes
To avoid a buffer under-run condition, a partial solution would be to dramatically increase the size of the buffer and fill the buffer with data before starting to record to the optical storage medium. A typical buffer may be about 2 to 4 MB in size. The practical considerations of size and cost make it difficult for a buffer to approach the size of the capacity of a full 650-MB Compact Disc. Therefore, even most large buffers would under-run eventually in situations where the data transfer speed of the communication link is slower than the optical drive recording speed, resulting in an unrecoverable error.
Another partial solution has been to allow the PC users to manually select a linear velocity that is slower than the maximum permissible by the optical drive and that matches the speed of the communication link. Although such manual selection of a slower writing speed allows the optical drive to record on a CD-R or CD-RW at a rate compatible with the interface speed and avoid buffer under-runs, automating the process is highly advantageous as the user may often neglect to modify the maximum speed or do so incorrectly.